Metaprogramming: an art of programming programs using Software Product Lines
نویسندگان
چکیده
Compositional languages and meta-programming are two approaches of code reusing. Both have its merits and demerits. We distilled the better of these two approaches by coupling disciplined meta-programming features with a compositional language like C++. In this paper we present a meta-programming approach to implement software product lines by designing an Array Product Line to implement different array operations by generating meta-expressions followed by respective C++ source code. A GUI has been designed to handle the APL for generation of meta-expression and metaprogramming.
منابع مشابه
Multilevel models in model-driven engineering, product lines, and metaprogramming
Model-driven engineering (MDE) aims to raise the level of abstraction in program specification and increase automation in program development. These are also the goals of product lines (a family of related programs) and metaprogramming (programming as computation). We show that the confluence of MDE, product lines, and metaprogramming exposes a multilevel paradigm of program development, and fu...
متن کاملTowards Generative Metaprogramming
Metaprogramming is the concept that program synthesis is a computation. Generative programming is about developing metaprograms that synthesize other programs. Our intention goes one step beyond: we aim to generate metaprograms, which when executed, will generate a target program of a product line. This work describes the GeneRative metaprOgramming for Variable structurE (GROVE) approach to syn...
متن کاملMetaprogramming in Logic
In this review of metaprogramming in logic we pay equal attention to theoretical and practical issues: the contents range from mathematical and logical preliminaries to implementation and applications in, e.g., software engineering and knowledge representation. The area is one in rapid development but we have emphasized such issues that are likely to be important for future metaprogramming lang...
متن کاملUnification of Compile-Time and Runtime Metaprogramming in Scala
Metaprogramming is a technique that consists in writing programs that treat other programs as data. This paradigm of software development contributes to a multitude of approaches that improve programmer productivity, including code generation, program analysis and domain-specific languages. Many programming languages and runtime systems provide support for metaprogramming. Programming platforms...
متن کاملRefactoring and Retrofitting Design Patterns in Java Software Product Lines
A centerpiece of modern software development is refactoring. Software Product Lines (SPLs), a major software development paradigm, lack tools to refactor Java SPL codebases. X15 introduces our new set of design guidelines, techniques, and language constructs to (1) express feature-based Java SPLs using only Java custom annotations, (2) view programs of the SPL, (3) edit views, automatically pro...
متن کامل